package com.htandroid.htandroid.webservice;

import android.util.Xml;

import com.htandroid.htandroid.entity.RdrecordAppList;
import com.htandroid.htandroid.entity.RdrecordsAppList_detail;

import org.xmlpull.v1.XmlPullParser;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;

public class XMLKcappdetail {

    /**
     * 解析评论xml信息
     *
     * @param result
     * @return
     */
    public static ArrayList<RdrecordsAppList_detail> paraseCommentInfors(String result) {
        ArrayList<RdrecordsAppList_detail> list = new ArrayList<RdrecordsAppList_detail>();
        //字符转换成字节流
        InputStream inputStream = new ByteArrayInputStream(result.getBytes());
        XmlPullParser parser = Xml.newPullParser();

        try {
            parser.setInput(inputStream, "UTF-8");
            int eventType = parser.getEventType();
            RdrecordsAppList_detail info = new RdrecordsAppList_detail();

            while (eventType != XmlPullParser.END_DOCUMENT) {
                switch (eventType) {
                    case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理
                        break;
                    case XmlPullParser.START_TAG:// 开始元素事件
                        String name = parser.getName();
                        if (name.equalsIgnoreCase("RdrecordsAppList_detail")) {
                            info = new RdrecordsAppList_detail();
                        } else {
                            eventType = parser.next();
                            if (name.equalsIgnoreCase("ID")) {
                                info.setID(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cvouchid")) {
                                info.setCvouchid(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cwhcode")) {
                                info.setCwhcode(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cwhname")) {
                                info.setCwhname(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdepcode")) {
                                info.setCdepcode(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdepname")) {
                                info.setCdepname(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cinvcode")) {
                                info.setCinvcode(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("inum")) {
                                info.setInum(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("isnum")) {
                                info.setIsnum(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("isquantity")) {
                                info.setIsquantity(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine22")) {
                                info.setCdefine22(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine23")) {
                                info.setCdefine23(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine24")) {
                                info.setCdefine24(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine25")) {
                                info.setCdefine25(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cinvname")) {
                                info.setCinvname(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cinvstd")) {
                                info.setCinvstd(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cinvm_unit")) {
                                info.setCinvm_unit(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cinva_unit")) {
                                info.setCinva_unit(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("iinvexchrate")) {
                                info.setIinvexchrate(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("binvquality")) {
                                info.setBinvquality(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdisapprovereason")) {
                                info.setCdisapprovereason(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("bapprove")) {
                                info.setBapprove(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("rds_appid")) {
                                info.setRds_appid(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("inorder")) {
                                info.setInorder(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("ctype")) {
                                info.setCtype(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("iquantity")) {
                                info.setIquantity(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("iprice")) {
                                info.setIprice(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("iamount")) {
                                info.setIamount(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine26")) {
                                info.setCdefine26(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine27")) {
                                info.setCdefine27(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("notaxprice")) {
                                info.setNotaxprice(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("taxrate")) {
                                info.setTaxrate(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("tax")) {
                                info.setTax(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("notaxamount")) {
                                info.setNotaxamount(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cchecker")) {
                                info.setCchecker(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("ccheckdate")) {
                                info.setCcheckdate(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("cdefine4")) {
                                info.setCdefine4(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("succount")) {
                                info.setSuccount(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("bclose")) {
                                info.setBclose(string2null(parser.getText()));
                            } else if (name.equalsIgnoreCase("dclose_date")) {
                                info.setDclose_date(string2null(parser.getText()));
                            }
                        }
                        break;
                    case XmlPullParser.END_TAG:// 结束元素事件
                        if (parser.getName().equalsIgnoreCase("RdrecordsAppList_detail")) {
                            list.add(info);
                            info = null;
                        }
                        break;
                }
                eventType = parser.next();
            }
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    //函数作用是把null 转为空
    public static String string2null(String str) {
        String rtn = "";
        if (str == null || str.equals("null") || str.equals("anyType{}")) {
            rtn = "";
        } else {
            rtn = str;
        }
        return rtn;
    }

}  
